//======================
//模型：Agent模型, agent表
//======================
let { DataTypes, Model } = require('sequelize');

class Agent extends Model { }

//定义模型结构, 数据表结构
Agent.init({
  id: {
    //数据类型：INTEGER整型, UNSIGNED无符号
    type: DataTypes.INTEGER.UNSIGNED,
    //自动递增
    autoIncrement: true,
    //主键
    primaryKey: true,

    //不允许为null
    allowNull: false,

    //注释
    comment: '表id'
  },

  // agentId: {
  //   type: DataTypes.STRING(30),
  //   allowNull: false,
  //   //默认值
  //   defaultValue: '',
  //   comment: '经纪人id'
  // },

  agentName: {
    type: DataTypes.STRING(30),
    allowNull: false,
    defaultValue: '',
    comment: '名字'
  },

  phone: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: null,
    comment: '电话'
  },

  // sex: {
  //   type: DataTypes.INTEGER,
  //   allowNull: false,
  //   defaultValue: 2,
  //   comment: '用户性别,0女1男2保密'
  // },

  branch: {
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '17web3',
    comment: '所属分支'
  },

  location: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '区'
  },

  serveArea: {
    type: DataTypes.STRING(30),
    allowNull: false,
    defaultValue: '',
    comment: '服务区域'
  },

  hisService:{
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '历史成交数'
  },

  position: {
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '置业顾问',
    comment: '职务'
  },

  rec: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '推荐'
  },

  hp: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '好评率'
  },

  zp: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '中评率'
  },

  cp: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '差评率'
  },

  serve: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '服务态度'
  },
  house: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '熟悉房源'
  },
  major: {
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '专业能力'
  },

  tag1:{
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '成交达人',
  },
  
  tag2:{
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '超赞经纪人',
  },

  tag3:{
    type: DataTypes.STRING(10),
    allowNull: true,
    defaultValue: '',
    comment: '片区之星/小区专家/学区专家',
  },


  avatar: {
    type: DataTypes.STRING(100),
    allowNull: false,
    defaultValue: 'personal.jpg',
    comment: '头像'
  }
}, {

  //指定连接实例，这样才知道在指定数据库创建agent表
  sequelize,

  //模型名称, 当没有指定表名时，sequelize推断名称为模型名称的复数 ==> agents作为表名
  modelName: 'agent',

  //不推断，直接使用模型作为表名 ==> agent作为表名
  freezeTableName: true,

  //指定表名
  tableName: 'agent'
})

//同步数据库表
//force: true ==> 删除原有agent表，新建agent表
//force: false ==> 如果agent存在，则不创建，反之，不创建agent表
Agent.sync({ force: false });

module.exports = Agent;
